import crypto from "crypto";
export async function acquireLock(key: any, ttl = 15) {
const redisServer = global.redis;
const token = crypto.randomUUID();
const result = await redisServer.set(key, token, {
NX: true,
EX: ttl,
});
if (result === "OK") {
return token;
} else {
return null;
}
}
export async function getLock(key: any) {
const redisServer = global.redis;
const value = await redisServer.get(key);
return value;
}
export async function releaseLock(key: any) {
const redisServer = global.redis;
const result = await redisServer.del(key);
return result === 1;
}